#ifndef WSI_MAP_CONNECTID_H
#define WSI_MAP_CONNECTID_H

#include <uthash.h> // 添加 UThash 库

// 连接映射结构
typedef struct {
    char connection_id[65];    // 作为键值
    struct lws *wsi;           // WebSocket 连接句柄
    UT_hash_handle hh;         // UThash 必需的句柄
} ConnectionMap;


// 生成唯一连接 ID
void generate_connection_id(char *buffer, size_t size);
// 添加连接到映射表
void add_connection_to_map(const char *connection_id, struct lws *wsi);
// 全局连接映射表
extern ConnectionMap *connection_map;

// 从映射表移除连接
void remove_connection_from_map(const char *connection_id);
// 通过连接 ID 获取 wsi
struct lws *get_wsi_by_connection_id(const char *connection_id) ;

#endif